5.Rasterization 2(Antialiasing and Z-Buffering)(反走样和深度缓冲)
5.Rasterization 2(Antialiasing and Z-Buffering)(反走样和深度缓冲)
这节课介绍反走样和深度缓冲,这节课难得多555
概念:锯齿=走样,抗锯齿=反走样(采样和走样的关系参考卖家秀和实物图,网恋和奔现)
视频是对时间进行采样,得到一帧帧连续的图
problem of sampling(采样遇到的问题)
- 锯齿(Jaggies-sample in space)
- 摩尔纹(图像去掉奇数行和奇数列)(moire undersample images)
- 看到物体倒转(人眼在时间中的采样跟不上运动速度)(wagon wheel effect-sample in time)
原因:信号变化太快但采样跟不上
antialiasing idea is pre-filteringbefore sample(在采样前做滤波/模糊)
先做一个模糊(滤波)然后再采样(行!)
错误示范:先采样再模糊(那岂不是更糊)(不行!)
frequency domain(频域)
傅里叶奇数展开:任何周期函数都能写成正弦和余弦函数和常数项
傅里叶变换:一个函数经过某复杂变换变成另一个函数
逆傅里叶变换:再变回去
每隔一段时间采样,频率越高越不准确
两种频率用同一种方法进行采样,得到的确是一样的结果,我们无法区分他们,这就称为“走样”
模糊(滤波):抹掉特定频域的频率(大师我悟了)
傅里叶变换把一个函数从时域(空间不同位置也算时域 )变到频域,让我们看到图像在各个不同频域长什么样,我们称为频谱。
图像中心最低频,边缘最高频,图像信息的多少通过亮度来表示(例如上图的信息就主要集中在低频区域)
高通滤波(high pass filter):把低频信息屏蔽,再逆傅里叶变换变成图像
如图所示高通滤波后图片剩下边界,我们认为边界是图像中变化较大的交界处
剧烈变化=高频信息
低通滤波(low pass filter):把高频信息屏蔽,再逆傅里叶变换变成图像
如图所示边界变得模糊,因为高频信息被去掉了
如图所示是圆通滤波中通滤波申通滤波(误)
filtering = cnvolution (=averaging)(滤波=卷积=平均)
滤波=卷积=平均?
卷积(图形学简单定义):信号在一个地方的周围做一个平均
卷积定理:时域上对两个信号进行卷积相当于对他们的频域进行乘积
相反也适用(时域上对两个信号进行乘积相当于对他们的频域进行卷积)
所以我们,将图片(时域)进行傅里叶变换,得到频域,把卷积的滤波器也变到频域上,两者相乘,再逆傅里叶变换变回图像
如图所示,图像的频域和滤波器的频域相乘再逆傅里叶变换,就成功对图像进行了模糊
此处盒型滤波器=低通滤波器
若盒子变大,频域上他会变小,因为盒子越大相当于越模糊=边界越不明显=高频信息越来越少,所以频域上变小了
sampling = repeating frequency contents(采样=重复频率上的内容)
采样=重复频率上的内容
如图所示,左边为时域右边为频域
这里a和c乘积=b和d的卷积,得到一堆重复的频谱
所以采样就是重复一个原始信号的频谱
若采样率不足/采样(复制粘贴)的速度太慢(如图所示),原始信号混叠,那这就是走样了!
how can we reduce aliasing error?(我们怎么减少混叠错误)
- 提高显示器分辨率
- 先做模糊再做采样(反走样)(钱不够算法凑)
(有没有豁然开朗的感觉呢)
如图所示以每个像素进行模糊
antialiaing by supersampling(超级采样)
Multi sample antialiaing(MSAA)
把一个像素划分为更小的点,判断是不是在三角形内,然后再平均起来
MSAA不是靠增加分辨率来直接抗锯齿的,而是靠模拟模糊得到近似三角形。
but not free lunch,多倍采样会造成大量的性能损耗(显卡在燃烧)
FXAA(Fast Approximate AA)
先把锯齿图得出,然后再进行后期处理(不是模糊),通过图像匹配找到边界,然后将其换成没有锯齿的边界,非常快速效果也不错。
TAA(Temporal AA)
静态时复用上一帧的结果(先不谈运动时如何使用)
DLSS(Deep Learning Super Sampling)(老黄家RTX的招牌)
通过深度学习把其他样本猜出来,将细节补充,从而提升分辨率
本文于4.15的14:18编辑完成,这周会把前面的补上的!